using System;
using System.Collections.Generic;
using System.Text;
using Ricciolo.StylesExplorer.MarkupReflection;

namespace Ricciolo.StylesExplorer.Model
{
    /// <summary>
    /// Rappresenta un'applicazione: assembly, xbap, exe, clickonce, solution ecc
    /// </summary>
    interface IApplication
    {
        /// <summary>
        /// Restituisce il nome dell'applicazione
        /// </summary>
        string Name { get; }
        /// <summary>
        /// Restituisce la lista degli assembly che contiene
        /// </summary>
        IList<IAssembly> Assemblies { get;}
        /// <summary>
        /// Aggiorna, eventualmente in asincrono, tutta l'applicazione che rappresenta
        /// </summary>
        /// <returns></returns>
        IAsyncResult Refresh();
        /// <summary>
        /// Evento da intercettare per la risoluzione degli assembly
        /// </summary>
        event AssemblyResolveEventHandler AssemblyResolve;

    }
}
